﻿using System;
using System.Data;
using System.Web;
using System.Web.UI.WebControls;
using Texfina.Core.Common;
using Texfina.Core.Web;
using Texfina.Common.Mg;
using Texfina.Core.Data;
using Texfina.Entity.Rh;
using Texfina.Entity.Mg;
using RHBOQry = Texfina.BOQry.Rh;
using MGBOQry = Texfina.BOQry.Mg;
using Newtonsoft.Json;

namespace RH
{
    public partial class AFPBnd : SearchPage
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            try
            {
                this.LoadInitialSettings();
                if (this.IsPostBack)
                {
                    this.LoadInPostBack();
                    return;
                }

                this.LoadData();
                SearchData();
            }
            catch (Exception ex)
            {
                this.hdnMsgOPB.Value = this.CreatePostbackMessage("ERROR", ex.Message, TypeMessageAlert.error, false, "");
            }
        }

        public override void LoadInitialSettings()
        {
            Label lbl = (Label)this.Master.FindControl("lblTitle");
            lbl.Text = "AFP";
            this.Page.Form.DefaultButton = bttSearch.UniqueID;
            this.hdnMsgOPB.Value = GetMessage();
        }

        public override void LoadListControls()
        {
            //FOR FILTER
            if (Request.QueryString["Filter"] == null)
                Session[ConstSessionVar.UFILTER] = "";
            else
                hdnFilter.Value = Session[ConstSessionVar.UFILTER].ToString();
            //END FOR FILTER
        }

        public override void SearchData()
        {

            EAfpBandeja objE = new EAfpBandeja();

            //FOR FILTER
            DataTable dtToken = (DataTable)JsonConvert.DeserializeObject(hdnFilter.Value, (typeof(DataTable)));
            Session[ConstSessionVar.UFILTER] = hdnFilter.Value;
            textFilter.DataSourceListToken = dtToken;
            objE.Filter = WebHelper.GetFilterWhere(dtToken, "id");
            //objE.Filter = WebHelper.AddFilterWhere(objE.Filter, "a.idTabla", OperatorWhere.igual, Session[ConstSessionVar.EMPRESA].ToString(), LogicalWhere.AND);
            objE.Filter = WebHelper.AddFilterWhere(objE.Filter, "a.idCodAlter", OperatorWhere.igual, ('*').ToString(), LogicalWhere.AND);
            //FOR FILTER

            //if (this.txtidAfp.Text == "")
            //   objE.IdAfp = null;
            //else
            //    objE.IdAfp = this.txtidAfp.Text;

            // if (this.txtdsAfp.Text == "")
            //   objE.DsAfp = null;
            //else
            //    objE.DsAfp = this.txtdsAfp.Text; 

            IBOQuery objBO = (IBOQuery)WCFHelper.GetObject<IBOQuery>(typeof(RHBOQry.Afp));
            DataTable dt = objBO.GetByCriteria(objE);

            this.GridSetDataBinding(grdList, dt);

        }

        protected void mnuToolbar_MenuItemClick(Object sender, MenuEventArgs e)
        {
            String strQS = "";

            switch (e.Item.Value)
            {
                case ConstMenuToolbarValue.BUTTON_NEW:
                    strQS = "wfAfpMnt.aspx?formEA=" + Convert.ToInt32(FormEditAction.AddNew).ToString() + "&IdAfp=";
                    break;
            }
            //FOR FILTER
            Session[ConstSessionVar.UFILTER] = hdnFilter.Value;
            //END FOR FILTER
            Response.Redirect(strQS);
        }

        protected void grdList_RowCommand(Object sender, GridViewCommandEventArgs e)
        {
            DataRow dr = this.GridGetRowFromDataKey(grdList, Convert.ToInt32(e.CommandArgument));
            FormEditAction formEA = FormEditAction.AddNew;

            switch (e.CommandName)
            {
                case ConstGridRowCommand.GRIDEDIT:
                    formEA = FormEditAction.Edit;
                    break;
                case ConstGridRowCommand.GRIDDELETE:
                    formEA = FormEditAction.Delete;
                    break;
                case ConstGridRowCommand.GRIDPREVIEW:
                    //this.PrintReport(Convert.ToInt32(e.CommandArgument));
                    return;
            }
            //FOR FILTER
            Session[ConstSessionVar.UFILTER] = hdnFilter.Value;
            //END FOR FILTER
            String strQS = "wfAFPMnt.aspx?formEA=" + Convert.ToInt32(formEA).ToString() + "&IdAfp=" + dr["idCodigo"].ToString();
            Response.Redirect(strQS);

        }
        //FOR FILTER
        protected void grdList_RowDataBound(Object sender, GridViewRowEventArgs e)
        {
            if (e.Row.RowType == DataControlRowType.Header)
            {
                var CtrlFilterPanel = (esdFilterPanel)e.Row.FindControl("dsAfp");
                if (CtrlFilterPanel != null)
                {
                    ETablaGenDet objEDet = new ETablaGenDet();
                    MGBOQry.ITablaGen objBOI = (MGBOQry.ITablaGen)WCFHelper.GetObject<MGBOQry.ITablaGen>(typeof(MGBOQry.TablaGen));

                    objEDet.IdTabla = ConstMultitabla.TIPO_CONCEPTO_PLANILLA;
                    DataTable dt = objBOI.GetDetailByList(objEDet);
                    CtrlFilterPanel.DataSourceCombo = dt;
                }

            }

        }
        //END FOR FILTER

        protected void bttOk_Click(object sender, EventArgs e)
        {
            try
            {
                this.SearchData();
            }
            catch (Exception ex)
            {
                this.hdnMsgOPB.Value = this.CreatePostbackMessage("ERROR", ex.Message, TypeMessageAlert.error, false, "");
            }
        }
    }
}